#include "SHA256.h"
#include <QFile>

QString SHA256::hash(const QString &input) {
    return hash(input.toUtf8());
}

QString SHA256::hash(const QByteArray &data) {
    QCryptographicHash hash(QCryptographicHash::Sha256);
    hash.addData(data);
    return QString(hash.result().toHex());
}

QString SHA256::hashFile(const QString &filePath) {
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly)) {
        return QString(); // 文件打开失败，返回空字符串
    }

    QCryptographicHash hash(QCryptographicHash::Sha256);
    if (hash.addData(&file)) {
        return QString(hash.result().toHex());
    } else {
        return QString(); // 计算失败，返回空字符串
    }
}